#include <iostream>
#include <unordered_map>
#include <set>
#include <string>
using namespace std;
 
int main()
{
	//建立映射：字母->数字
	string alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	string num = "22233344455566677778889999";
	unordered_map<char, char> mp;
	for (int i = 0; i < alpha.size(); ++i)
	{
		mp[alpha[i]] = num[i];
	}
	set<string> set; // 保存转换之后的结果，去重
	int n = 0;
	while (cin >> n)
	{
		set.clear();
		// 处理n个字符串
		for (int i = 0; i < n; ++i)
		{
			string line;
			cin >> line;
			string curRet; // 建立空的字符串，保存转换之后的电话号码
			for (auto& ch : line) // 处理字符串中的每一个字符
			{
				if (isdigit(ch))
					curRet += ch;
				else if (isupper(ch))
					curRet += mp[ch];
			}
			//转换格式： xxx-xxxx
			curRet = curRet.substr(0, 3) + "-" + curRet.substr(3);
			set.insert(curRet); // 保存结果
		}
		for (auto& str : set)
		{
            cout << str << endl;
        }
		cout << endl;
	}
	return 0;
}